泛型
泛型
-
JDK5的時候推出
-
沒有泛型的時候,集合如何存處數據?
ArrayList list = new ArrayList(); list.add(123); list.add("aaa"); list.add(new Student("eddie",123)); Iterator it = list.iterator(); while(it.hasNext()){ Student str = (Student) it.next(); //多態的弊端 -> 不能訪問子類的特有功能 //obj.length() //str.length() System.out.println(str); }
-
泛型的好處?
- 統一數據類型
- 把運行時期的問題提前到編譯階段,避免了強轉類型可能出現的異常,因為在編譯階段類型就能確定
- 在集合底層,還是當Object來處理,不過當往外獲取時,會透過泛型進行強轉
- 在集合底層,還是當Object來處理,不過當往外獲取時,會透過泛型進行強轉
-
泛型的細節
- 泛型不能寫基礎數據類型
- 因為底層還是用Object來處理
- 用基礎類型不能轉成Object
-
指定泛型的具體類型後,傳遞數據時,可傳入該類類型或者其子類類型
- 不寫泛型,默認類型為Object
- 泛型不能寫基礎數據類型
-
泛型可以在很多地方進行定義
-
泛型類
- 此處E可理解成變量,不是用來記錄數據,而是記錄數據類型
- 可以寫成 T(type),E(element),K(key),V(value)
- 寫其他的字母也行,只是常用這四種
- 此處E可理解成變量,不是用來記錄數據,而是記錄數據類型
-
泛型方法
- 調用時,才會確定類型
- Tips: 傳很多怎麼辦 -> 使用可變參數
-
泛型接口
- 重點:該如何使用???
- 方法1.
- 方法2.
- 方法1.
- 重點:該如何使用???